Workflow technologies are often used to manage and monitor business processes. For example, workflow technologies allow users to efficiently define and track processes that involve work spanning multiple individuals and/or departments within an organization (or even across organizations). Existing workflow technologies often allow users to automate a range of tasks, which are often dependent on large amounts of specific information. Accordingly, executing a task may involve performing functions (sometimes repeatedly) on large sets of input data.
In general, tasks are created to perform a single or limited set of functions and then combined with other tasks as part of larger processes. Some high-level examples of task functions include retrieving data from a data store, retrieving data from an external application, sending data to a data store, sending data to an external application, re-formatting input data to output data, transforming (computing) data from input to output, deriving new data from input data, relating multiple input streams of data with respect to each other, etc. As a practical example, workflow tasks may be responsible for notifying employees of pending work orders. Likewise, workflow tasks may enable managers to efficiently observe status and route approvals quickly.
Because the demand for workflow technology is high, there are many types of workflow technologies on the market. Most workflow technologies are generally comprised of a package of several software components that provide functionality in areas of both workflow design and workflow execution. In terms of workflow design, these software components sometimes include workflow diagramming functionality having a workspace or canvas used to create workflow diagrams (e.g., specify the placement of tasks and pipes, which define the sequence and flow of information between tasks in a workflow). In facilitating workflow design, the software components of workflow technologies often allow a user to specify parameters and business rules to guide the flow of control, the flow of data, and the functions of tasks. In addition to facilitating the design of workflows, the software components of typical workflow technologies also facilitate the initiation, evaluation, and review of workflows.
In terms of executing workflows, typical workflow technologies include processing capabilities that manage the flow of information along the pipes between tasks, apply business rules to direct execution path and data at pipe junctions, ensure data is passed as input to tasks, ensure user parameter metadata is provided to tasks, monitor and propagate error status of the tasks and pipes, and save and restore job context between sessions. However, existing workflow technologies are often limited in the way that they execute tasks. For example, they typically operate by reading input data one record at a time (with each record limited to similarly shaped data), applying a task (function) to the data, and outputting modified data after performing the task, one record at a time. In other words, in most workflow systems, each task within a workflow inputs, processes, and outputs a single record prior to processing a subsequent record. In such systems, scalability is achieved by invoking parallel instances of a task, although each instance still incurs the individual memory and computational overhead.
Some workflow systems have been designed to support data merging tools that, in executing tasks, enable the merging of different types of input data into a single output document or set of output documents. However, because there are so many different types of data that any given workflow system may need to handle, such merging capabilities are typically implemented using specialized tasks that are custom-designed (e.g., using software programming techniques) for individual cases. Accordingly, for such tools to accommodate additional data types for merging, additional programming is almost always a necessity.
In the drawings, the same reference numbers identify identical or substantially similar elements or acts. To facilitate the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced (e.g., element 204 is first introduced and discussed with respect to FIG. 2).
A portion of this disclosure contains material to which a claim for copyright is made. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or patent disclosure (including Figures), as it appears in the Patent and Trademark Office patent file or records, but reserves all other copyright rights whatsoever.